how to integrate heterogeneous data